package demo2;

/**
 * 图形抽象类（桥接模式的Abstraction，抽象部分）
 * 持有坐标系引用，实现抽象与实现的桥接
 */
public abstract class Shape {
    // 桥接：关联坐标系接口（面向抽象编程，可切换任意坐标系）
    protected CoordinateSystem coordinateSystem;
    protected String shapeName; // 图形名称

    // 构造器注入坐标系（强制绑定坐标系）
    public Shape(CoordinateSystem coordinateSystem, String shapeName) {
        this.coordinateSystem = coordinateSystem;
        this.shapeName = shapeName;
    }

    /**
     * 统一绘制入口（由子类实现具体参数组装）
     */
    public abstract void draw();
}
